McSink V5.0 is a general-purpose text editing shareware Desk Accessory. It's a multi-window memory-based editor. This means you can open up to 16 windows, and the size of the text in each window is limited only by the amount of available memory. In addition to normal text editing capabilities, McSink provides a number of special purpose editing and file access commands.
This document describes the features of McSink relatively briefly. It should be enough information for experienced Mac users. Registered owners will receive a printed manual with more information.
Requirements and caveats
McSink should work on any Mac as long as you're running System 4.1 or greater and have the 128K ROMs or greater. I use it myself on a II. My old Mac is busted, so I couldn't test it extensively on it, but it should work OK on any 128K ROM machine. (My SE's on order now for future testing.)
Changes and fixes
The changes and fixes history list has been moved to a separate document to accomodate those people who might want to only download the changes information.
Shareware
McSink is shareware. The price is $25.00. Registered owners will receive a disk containing the latest version of McSink, a small printed manual, and notices of major updates. Site licenses for multiple copy users are available on request at reasonable rates. You can become a registered owner by sending a check or money order made out to:
Signature Software
2151 Brown Ave.
Bensalem, PA 19020
You can also call anytime for telephone support as long as it's your nickel. The 'phone number is 215-639-8764. You can call any day of the week, but please restrict the hours if possible to 8:00 AM to 11:00 PM EST. Ask for me, Dave McWherter.
Overseas owners: As much as I regret to say it, it's cheaper for me if you don't register. It costs me almost $25 to collect the funds and mail the package, so enjoy with my compliments, alas.
Bulletin board owners: Please feel free to post McSink as long as you keep these docs with it and don't change the program.
MUGs: Please feel free to include McSink in your libraries with the same restrictions (retain docs and no changes to the program.)
Anyone else: Do not feel free to offer McSink or its docs as a part of any diskette-based commercial product or shareware compendium offering for which a fee is charged. Such use other than by an electronic bulletin board proprietor or official user-group library is expressly prohibited without the express written consent of Signature Software.
I know the general feelings about the demise of Mac shareware, but I've had nothing but good experiences with it in other products. (I haven't made much money, but I've enjoyed myself.) In addition, the nice response to previous versions of McSink, which were free, gives me confidence that this version can be successful as shareware. I actually had people try to pay for the free versions. (To these people - thanks again.) I still believe that if you offer a good product and support, then shareware can be a viable marketing approach.
Normal text editing
McSink's normal editing conforms to the standard Mac cut-and-paste interface. If you've used any other text editor on the Mac, then you'll have no trouble with McSink.
Menu command editing
McSink provides a number of special-purpose commands in its menu that also edit (operate on) text. The operations of these menu commands differs somewhat from the standard Mac interface in regard to what text they operate on. Normally, a Mac text edit command works on selected text, and if there is no selected text, the command does nothing. This is not the case with McSink. If text is selected, then that is the text that's operated on, just like standard Mac stuff. However, if no text is selected, then the commands operate on all of the text in the current window.
The menu commands
Here's a brief explanation of what each command in McSink's menu does:
The File menu
New Opens a new empty window. You can open up to sixteen windows. If you have sixteen windows open, then this command is disabled.
Open Opens a new file window. You'll be presented with a dialog box to select the file to be opened. If you have sixteen windows open, then this command is disabled. You are normally only allowed to open TEXT type files, but if you hold down the Option key when you select Open from the menu, you'll be able to open any type of file. (Why you would want to do this, I don't know, but some people have asked for it.)
Open selection Same as Open, except the filename to open is the current selected text. The selected text must contain the name of a file which is in the same folder as the file containing the selected text or you'll get an error message.
Close Closes the current window. Allows you to save any changes first if a file is associated with the window. (But if no filename is associated with the main window, you won't be asked to save your changes! (The main window is the first window McSink opens.))
Read [paste] Read a file and paste it into the current window. You'll be presented with a dialog box to select the file to be pasted.
Save Save the current window. This command is disabled if there is no file associated with the window, but the Save command key will do a Save As in such a case.
Save As Save the current window under a filename of your choice.
Revert Revert all of the current window's text to the original contents of the window's file. This command is disabled if there is no file associated with the window.
Delete File Delete any file.
File Info Display information about any file. You can change any of the editable fields and the information will be changed in the file itself.
List files Pastes a list of the files in the selected folder into the current window. Format is <filename> <filesize> <file type> <file signature> <modified date>."
The Window menu
Font Allows you to change the font for the window. Note that if you use a proportional font (non-monospaced), then tabstops won't line up properly. This menu may be disabled with a checkbox in the Configuration dialog.
Size Allows you to change the font size for the window. Other allows you to select any font size from 1 to 127 points.
Settings Allows you specify some parameter settings for the current window:
Tab width is the number of spaces in a tab. This version of McSink implements tabstops every n character positions in a line. A future version will probably have a tabstop ruler.
Wrap line length is the line length that McSink uses for all of its word-wrap-to-line-length commands.
Wrap typing causes McSink to insert carriage returns as necessary when you type to wrap lines either to the window width or to line length.
Auto-indent automatically indents new lines by the amount of indentation (tabs) in the previous line.
Show page breaks displays a dotted line at the end of each page, where the length of a page is determined by the page length setting in the Print parameters dialog.
The File signature is the creator signature that McSink uses for new text files that it creates in this window. If you Open a window to an existing document, then this will show the creator of that document.
All of these settings are unique for each window, and they're saved each time you specifically change them. (The font, its size, the size and location of the window, and the state of the status line display are all remembered too.) They are not saved, however, if overridden by opening a document into the window. For example, if a window has tabs set to ten and you read a QUED document into it which has tabs set to eight, then the eight setting is only used for that document and future uses of the window will still default to ten spaces for a tab. However again, if you change anything in this dialog, then all setting values at the time of the change become the new defaults for new uses of the window.
Statistics Shows the number of characters, lines, words, sentences, and paragraphs for the current window (or, for the selection in the current window.)
Horz. scroll bar Toggles the horizontal scroll bar on and off.
Show invisibles Displays tabs, spaces, and carriage returns (which are normally invisible) as special characters.
Status line Displays a status line at the top of the window. The status information includes the current line number, column number, page number, and selection length. This information is determined by either the position of the insertion point, or the start of a selection.
Stack windows "Stacks" all of the McSink windows one on top of the other beginning at the top left corner of the screen. The windows are not resized.
Tile windows "Tiles" all of the McSink windows so that you can see them all at once. The windows are resized as necessary to fit them all on the screen. You can choose to tile horizontally or vertically with a checkbox in the Configure dialog. Horizontally means that the windows will be made as wide as possible. Vertically means that the windows will be made as tall as possible.
Next window Allows you to bring the next McSink window to the front.
Window titles Shows you the titles of the open McSink windows. The currently active window is checked. You can bring any window to the front by selecting its title in this menu.
The Search menu
Find Allows you to search for and change text strings in the text. If you hold down the Shift key when you select Find, then any selection less than 32 characters long will be used as the string to find. If you hold down the Command key when you double-click select a word in a window, then the Find dialog is automatically opened and the find string is set to the selected word. You can move this window anywhere you like - McSink remembers where you put it for the next time you open it.
In the find string, you can specify a carriage return with the sequence \R, a tab with \T, a linefeed with \L, and a match to any character with \?. You can also specify a match to one or more occurrences of a character with c\+, where c is the character that could repeat. For example, the find string ab\+c would match any of the strings abc, abbc, abbbc, etc. (This is a handy way to do things like condensing runs of spaces to one space.) The \R, \T, and \L may also be used in the replacement string, but the \? and the \+ cannot.
You can cut, copy and paste while in the Find dialog by using the appropriate command key equivalents for these operations.
(Yes, I know McSink's menu goes away when you're in the find dialog! Such is life for DA's. Do not be alarmed, and do not report it as a bug.)
Find next Does a search for the next occurrence of the specified Find string.
Goto line "Jumps" to a text line number which you specify in a dialog which is displayed.
The Justify menu
Form paragraphs Removes carriage returns from the ends of lines inside paragraphs.
Word wrap to length Rearranges all text so that no line is longer than the line length specified in the Window menu's Settings command.
Word wrap to window Ditto, but the line length is determined by the width of the window.
Flush right to length Justifies lines by adding spaces between words so that the right edge of the text is flush. The line length specified in the Window menu's Settings command determines the length of the flushed lines.
The Case menu
Upper case Converts text from lowercase to uppercase.
Lower case Converts text from uppercase to lowercase.
Capitalize sentences Just what it says.
Capitalize words Ditto.
The Tab menu
Convert tabs to spaces Converts tab characters to space strings. How many spaces is determined by the current tab width setting for the window.
Convert space runs to tabs The reverse of the above.
Indent Adds a tab to the front of every line.
Unindent The reverse of the above.
The Sort menu
Sort lines Sorts lines into ascending order.
Reverse order lines Reverses the order of lines. The first text becomes the last and vice versa.
Set parameters Allows you to change some sorting parameters.
The Strings menu
Add prefix string Adds a string specified in the Set strings command to the front of every line.
Strip prefix string The reverse of the above.
Add suffix string Adds a string specified in the Set strings command to the end of every line.
Strip suffix string The reverse of the above.
Set strings Allows you to specify the prefix and suffix strings for the above.
Line numbers menu
Add line numbers Adds line numbers to the front of every line.
Strip line numbers The reverse of the above.
Set parameters Allows you to specify the line numbering parameters.
The Columnize menu
Columnize row order Arranges lines in columnar form, with ordering done within rows from right to left. The first line goes into column one, the second into column two, etc. Columns are separated by a string specified in the columnize set parameters dialog.
Columnize column order Arranges lines in columnar form, with ordering done within columns from top to bottom. Lines 1…n go into the first column, lines n+1…n+m go into column two, etc. Columns are separated by a string specified in the columnize set parameters dialog.
Set columnize parameters Allows you to specify various columnization parameters.
The Print menu
Page setup Allows you to select the print options offered by the currently selected printer.
Set parameters Allows you to specify McSink's parameters for a print. The ImageWriter native font options are only available if an ImageWriter is selected and if you print in Draft mode.
Print Prints text in the mode you select in the presented print job dialog.
The Misc. menu
Strip controls Removes control characters from text. A control character is defined as any character in the ranges hex 00…08, 0A…0C, 0E…1F, and 80…FF.
Strip trailing white space Removes white space (spaces and tabs) from the ends of lines.
Add linefeeds Adds a linefeed to the end of every line.
Strip linefeeds The reverse of the above.
Compare windows Allows you to compare the topmost two McSink windows for equality. The comparison starts at the current insertion point (or selection start) in both windows, and continues until the end of each window's text. If the windows are the same over that range, you'll get an alert message to that effect, otherwise, the insertion point in each window is positioned to the first characters that are different.
Cursor location [paste] Allows you to display the coordinates of the cursor. First, the window is cleared. Then a cross cursor is displayed. Moving the cursor continuously displays the current cursor coordinates in the window. When you click the mouse, the original window text is restored, the current coordinates are pasted into your text, and the command ends.
Configure Allows you to configure some of McSink's options...
Auto-copy and auto-paste are discussed below.
Enable font menu is for those people who don't need to change fonts often and who have large numbers of fonts on-line. If the font menu is disabled, then McSink doesn't install the font names in the menu when McSink is opened. This saves the time it takes to sort all of the font names, which can be considerable with lots of fonts.
Enable mouse holddown allows you to disable the mouse holddown auto-copy or paste feature which is described below. If you're running under MultiFinder and you don't use the option key to open McSink, the mouse holddown is automatically disabled and changing this checkbox will have no effect until the next time you open McSink.
Tile windows determines the format of the window tiling command in the Windows menu.
Open file dialog on McSink open causes McSink to prompt you for a filename to open when McSink is opened.
Save main window changes causes McSink to allow you to save any changes in the main window before it's closed.
About Some information about McSink.
Quit Closes all open windows and closes McSink.
Auto-paste and auto-copy
Since McSink's main window was designed to operate on clipboard text, its default parameters are set to automatically paste the clipboard text on an open (auto-paste) and to automatically copy all text to the clipboard on a close (auto-copy). In other words, when you open McSink, whatever text is in the clipboard is automatically pasted into McSink's main window. And when you close McSink, all of the text in the last open McSink window is automatically copied to the clipboard — you don't have to do an explicit paste or copy in either case. This auto-pasting and auto-copying normally only takes place in the main window, not in the subwindows (windows you open after the first.) However, if a subwindow is the last window you close, then the auto-copy will be done if its enabled in the Configuration command.
If you don't like auto-paste or auto-copy, you can turn them off with the Configuration dialog.
Mouse holddown auto-paste and auto-copy
McSink also has a feature called mouse holddown that allows you to auto-paste and auto-copy when switching windows. If you hold down the mouse button for a short period of time after you click in a new window to activate it, then an auto-copy and auto-paste will be performed as noted below for each of the possible conditions:
Going from a McSink window to another McSink window — If any text is selected in the old window, then that text is copied to the clipboard. If no text is selected, then all of the text in the old window is copied to the clipboard. The clipboard text is then pasted into the new window at the current insertion point in the new window (replacing any selection.)
Going from a non-McSink window to a McSink window — Any text in the clipboard is pasted into the McSink window at the current insertion point in the McSink window (replacing any selection.) So, if you want to move text from a non-McSink window into a McSink window, do a copy first in the source window, and then select the McSink window and hold down the mouse for a bit.
Going from a McSink window to a non-McSink window — If any text is selected in the McSink window, then that text is copied to the clipboard. If no text is selected, then all of the text in the McSink window is copied to the clipboard. So, if you want to move text from a McSink window into a non-McSink window, select the text in the McSink window that you want to move (or unselect if you want to move all of the text), and then select the non-McSink window and hold down the mouse for a bit. Release the mouse button and then do a paste into the new window.
Mouse-holddown pasting and copying is only done if you've enabled them in the Configuration dialog. Also, the amount of time you have to hold down the mouse is a function of your double-click time which you set in the control panel. Mouse-holddown is automatically disabled if you're running under MultiFinder and don't open McSink with the Option key down. (As shipped, mouse holddown is disabled. Because many users have reported problems with this. I guess many of us have sticky fingers and hold down the mouse long enough to activate mouse holddown without meaning to. In previous versions of McSink, this could have disastrous results due to the way auto-paste used to work. This version works quite differently, however, and if you do unintentionally invoke the mouse holddown auto-paste it's Undo-able now.)
Arrow keys
The following arrow key combinations are supported:
left moves insertion point one character to the left.
right moves insertion point one character to the right.
up moves insertion point up one line in same column if
possible, else to end of previous line.
down moves insertion point down one line in same column if
possible, else to start of next line.
Opt left moves insertion point to start of previous word.
Opt right moves insertion point to end of next word.
Cmd left moves insertion point to start of current line.
Cmd right moves insertion point to end of current line.
Cmd up moves insertion point to start of the document.
Cmd down moves insertion point to end of the document.
Using the Shift key with any of these combinations will extend the current selection to the described position. For example, Shift left extends the selection one character to the left, Shift Opt right extends the selection to the end of the next word, and Shift Cmd down extends the selection to the end of the document.
Multiple clicks
A triple click will select the current line. A quadruple click will select the current paragraph. And a quintuple click will select all of the text. Do we have any suggestions for a sextuple?
General information
Undo is supported (one level back.) (May not be available if McSink runs out of memory.)
Cmd A will select all text.
If you change the text in a window, then a black dot appears in front of the window's title.
All of the parameter settings for each window (tabs width, line length, wrapping options, font/size, creator, whether or not the status line is displayed, and the window's size and location) are saved when the window is closed and restored on the next open. However, if you Open a document which contains MDS/QUED style font and tab information, then that information overrides the default window settings temporarily for that document. McSink also stores the font and tab information in new documents in the same MDS/QUED format.
All of the strings used by McSink are editable resources. This includes the menu strings. So if you're handy with ResEdit, you can change the command keys or add new ones. Command keys in menu strings are identified by a slash character preceding the command character after the menu title. However, you can't change the hardwired command keys A (select all), C (copy), V (paste), X (cut), and Z (undo), because these command keys don't appear in a McSink menu.
The flush right, sort, and columnize commands will only work on selected text if the selected text is in units of whole lines. You'll get an error message if you try to do either command on parts of lines.
A known problem under MultiFinder
If you run McSink under MultiFinder, and if you have more than one window open, and if you Quit using the Quit menu command in the DA Handler menu (or any other application's Quit command) as opposed to McSink's Quit command, then you will have the following problems:
1.) Only the topmost McSink window will be closed. The other windows will still be "open" (and taking up space in the heap), but you won't see them - they're removed from the screen (not by McSink.) You also won't be asked to save any changes in them.
2.) If you subsequently re-open McSink, these previously opened windows will "come back". McSink redisplays them and you'll have complete access to them. Thank goodness for small favors. But...
3.) If you do it any more times (Quit using the DA Handler's or application's menu), then the same thing happens, except now the windows are not removed from the screen. In fact, you will have great difficulty in removing them or covering them up with another window. (Maybe we could sell this as a neat feature called read only permanent windows ? Never again will you have to worry about inadvertently changing a window that simply must remain inviolate!) Again, these windows are still "open" - you just can't access them. The "solution" is to re-open McSink again. Everything will then be normal (normal???).
I'm sorry, but given the current state of MultiFinder and my limited understanding of its workings, I don't anticipate a fix for this problem. Just be aware of it, and try to avoid using an application's Quit command if you have more than one McSink window open.
McSink Opener — the DA that thinks it's an application
There's a companion application to McSink called McSink Opener. Move it to your start-up disk (or any other disk that's on-line), and it provides two additional McSink features: 1.) Files created by McSink whose windows still have the original creator signature 'McSk' will display their own unique icon in the Finder, and 2.) You can double-click open such files, or select them and either open them or print them from the Finder's File menu. You can also just open McSink to the scratch main window by double-clicking on McSink Open.
This is all accomplished by a little sleight-of-hand. When you double-click open a McSink file, you actually open the McSink Opener application first. McSink Opener then opens McSink and tells it to open or print all of the selected files. If you quit McSink, then the application McSink Opener also quits (and vice versa.) If you're running under Finder, then the menu bar shows the McSink Opener menu. However, if you're running under MultiFinder, the menu bar displays the DA Handler menu. (You can bring up the McSink Opener menu under MultiFinder if you want with standard MultiFinder application switching techniques, but as soon as you bring a McSink window to the front, the DA Handler menu will come back.)
Note: If you change McSink's name so that McSink doesn't appear in your Apple menu, then you must also tell McSink Opener about it by changing the STR 128 resource in McSink Opener to the new McSink name. (If you're smart enough to change McSink's name, then you also know how to change STR 128. If you don't know, you do it with a program like Apple's ResEdit. You can change a DA's name by using ResEdit to change the name of its DRVR resource.) (Don't try to open other DA's with McSink Opener this way though, it won't work, and it'll probably crash the system.)